package cn.sdstudio.controller;


import cn.sdstudio.model.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author zyq
 */
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {

    /**
     * 普通用户和管理员都能访问
     * @return
     */
    @GetMapping("/user")
    @PreAuthorize("hasAnyRole('USER', 'ADMIN')")
    public Result<?> userEndpoint() {

        log.info("普通用户或管理员都可以访问");
        return Result.success("普通用户或管理员都可以访问");
    }

    /**
     * 只有管理员能访问
     */
    @GetMapping("/admin")
    @PreAuthorize("hasRole('ADMIN')")
    public Result<?> adminEndpoint() {
        log.info("只有管理员可以访问");
        return Result.success("只有管理员可以访问");
    }


    /**
     * 放行测试
     * @return
     */
    @GetMapping("/pass")
    public Result<?> pass() {
        log.info("放行测试");
        return Result.success("放行测试");
    }

        /**
     * 放行测试
     * @return
     */
    @GetMapping("/noPass")
    public Result<?> noPass() {
        log.info("no放行测试");
        return Result.success("no放行测试");
    }
}
